package com.springboot.erp.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;

@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("jsh_depot_head")
public class Return {
    // 退货单ID
    @TableId(type = IdType.AUTO)
    private Long id;

    // 退货单号
    private String number;

    // 客户ID
    private Long organId;

    // 退货日期
    private Date createTime;

    // 状态
    private String status;

    // 退货金额
    private BigDecimal totalPrice;

    // 创建人ID
    private Long creator;

    // 更新时间
    private Date operTime;

    // 备注
    private String remark;

    // ========== 关联查询字段 ==========

    // 组织简称（关联jsh_organization表）
    @TableField(exist = false)
    private String orgAbr;

    // 商品信息（关联jsh_material表）
    @TableField(exist = false)
    private String productName;

    // 操作员名称（关联jsh_person表）
    @TableField(exist = false)
    private String operatorName;

    // 待退金额
    @TableField(exist = false)
    private BigDecimal pendingRefundAmount;

    // 本次退款
    @TableField(exist = false)
    private BigDecimal currentRefundAmount;

    // ========== 用于操作的字段 ==========

    // 物料ID（用于新增/修改时的子表操作）
    @TableField(exist = false)
    private Long materialId;

    // 单项数量（用于新增/修改时的子表操作）
    @TableField(exist = false)
    private BigDecimal operNumber;

    // 单项金额（用于新增/修改时的子表操作）
    @TableField(exist = false)
    private BigDecimal taxLastMoney;

}